#include "enemy.h"


enemy::enemy(int a)
{
    index=a;
    //资源图片加载
    switch(a){
    case 1:
        pix.load(":/res/UFO1.png");
        break;
    case 2:
        pix.load(":/res/UFO2.png");
        //pix.scaled(pix.width()*0.3,pix.height()*0.3);
        break;
    case 3:
        pix.load(":/res/UFO3.png");
        break;
    }


    //设置位置
    e_x=0;
    e_y=15;
    is_free2=true;

    e_speed=4;
    //初始化矩形框
    e_rect.setWidth(pix.width()-30);
    e_rect.setHeight(pix.height()-30);
    e_rect.moveTo(e_x+15,e_y+15);

    srand((unsigned int)time(NULL));
    x_offset=rand()%(10)-5;//随机左右移动
    if(x_offset==0)x_offset+=rand()%(2);
}

void enemy::updatePosition()
{
    //空闲状态无需计算坐标
    if(is_free2){
        return;
    }
    //敌机向下运动
    e_y+=e_speed;

    if(index==2){
        //左右偏移，超界即反向
        e_x+=x_offset;
        if(e_x<0||e_x>298){
            x_offset=-x_offset;
            e_y+=2;
        }
    }

    if(index==3){
        //左右偏移，超界即反向
        e_x+=x_offset;
        if(e_x<0||e_x>280){
            x_offset=-x_offset;
            e_y+=2;
        }
    }

    e_rect.moveTo(e_x+15,e_y+15);

    //超出屏幕，重置空闲状态
    if(e_y>=601+15){
        is_free2=true;
    }
}
